// 数据验证结果处理中间件
// 该中间件用于处理Express-Validator的数据验证结果

// 引入express-validator的验证结果处理函数
const { validationResult } = require('express-validator');

/**
 * 数据验证错误处理中间件函数
 * 检查请求中的数据验证结果，如果有错误则返回统一格式的错误响应
 * @param {Object} req - 请求对象
 * @param {Object} res - 响应对象
 * @param {Function} next - 下一个中间件函数
 * @returns {Object|void} 如果有验证错误则返回错误响应，否则继续执行下一个中间件
 */
const handleValidationErrors = (req, res, next) => {
    // 获取验证结果
    const errors = validationResult(req);
    
    // 如果有验证错误
    if (!errors.isEmpty()) {
        // 返回统一格式的错误响应
        return res.status(400).json({
            status: 1,              // 状态码，1表示失败
            message: '数据验证失败',  // 错误消息
            errors: errors.array()  // 详细的错误信息数组
        });
    }
    
    // 如果没有验证错误，继续执行下一个中间件
    next();
};

// 导出数据验证错误处理中间件
module.exports = handleValidationErrors;